﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SistemaGO_Library.Entidades.Terceiro
{
    class CadastroTerceiro
    {
        private IRepositorioTerceiro terceiros;

        public CadastroTerceiro(IRepositorioTerceiro repTer) {
            this.terceiros = repTer;
        }

        public void inserirTerceiro(Terceiro ter) {
            if (ter != null && !terceiros.existeTerceiro(ter.Terc_cod)) {
                terceiros.inserirTerceiro(ter);
            } else {
                throw new Exception("Terceiro Já Existente ou Nulo");
            }
        }

        public Terceiro buscarTerceiro(int cod) {
            Terceiro ter = new Terceiro();
            ter = null;
            if (terceiros.existeTerceiro(cod)) {
                ter = terceiros.buscarTerceiro(cod);
            } else {
                throw new Exception("Terceiro Não Encontrado");
            }
            return ter;
        }

        public void alterarTerceiro(int cod, Terceiro novoTerceiro) {
            if (terceiros.existeTerceiro(cod)) {
                terceiros.alterarTerceiro(cod, novoTerceiro);
            } else {
                throw new Exception("Erro ao alterar terceiro");
            }
        }

        public void excluirTerceiro(int cod) {
            if (cod < 0) {
                throw new Exception("Erro ao excluir terceiro");
            } else {
                terceiros.excluirTerceiro(cod);
            }
        }

        public int buscarCodigoTerceiro() {
            return terceiros.buscarCodigoTerceiro();
        }

        public Terceiro logarTerceiro(int cod, string cnpj) {
            Terceiro ter = null;
            ter = terceiros.logarTerceiro(cod, cnpj);
            return ter;
        }

        public bool validaCnpj(string cnpj) {
            return terceiros.validaCnpj(cnpj);
        }
    }
}
